/* eslint no-param-reassign: 0  */

import Vue from 'vue';
import Vuex from 'vuex';
// store2用于本地存储
import sessionStore from 'store2';

Vue.use(Vuex);

const userStore = new Vuex.Store({
  state: {
    isLoading: false,   // loading状态
    isAgentUsr: false,     // 是否为代理用户
    isShowToast: false,  // 是否展示toast
    toastContent: '',       // toast内容
    reLoginFlag: false,   // 是否需要执行登录标识
    appId: 'wx23f93fcf5fd2f4fb',
    openId: '',   // 用户openId
    usrInfo: {
      registed: true  // 默认已注册
    }   // 用户信息
  },
  getters: {          // 计算过滤
    getUsrInfo(state) {        // 获取用户信息
      state.usrInfo = sessionStore.local('usrInfo');
      return state.usrInfo;
    },
    getOpenId(state) {        // 获取用户openId
      state.openId = sessionStore.local('openId');
      return state.openId;
    },
    getAppId(state) {     // 获取appId
      return state.appId
    },
    getReLoginFlag(state) {     // 获取执行登录标识
      state.reLoginFlag = sessionStore.local('reLoginFlag');
      return state.reLoginFlag
    }
  },
  mutations: {      // 修改状态
    updateLoginFlag(state, reLoginFlag) {      // 修改是否登录标识
      state.reLoginFlag = reLoginFlag;
      sessionStore.local('reLoginFlag', reLoginFlag)
    },
    updateUserAgent(state, status) {      // 修改用户代理状态
      state.isAgentUsr = status;
    },
    updateLoadingStatus(state, status) {      // 修改loading状态
      state.isLoading = status;
    },
    setUsrInfo(state, usrInfo) {      // 设置用户信息
      state.usrInfo = usrInfo
      sessionStore.local('usrInfo', usrInfo)
    },
    setOpenId(state, openId) {      // 设置用户openId
      state.openId = openId
      sessionStore.local('openId', openId)
    },
    showToast(state, content) {      // 展示toast提示框
      state.toastContent = content
      state.isShowToast = true
    },
    hideToast(state) {              // 隐藏toast提示框
      state.toastContent = ''
      state.isShowToast = false
    }
  },
  actions: {                           // 异步修改状态
    // setUserInfo({ commit }, user) {
    //   commit('setUserInfo', user);
    // }
  }
});

// 导出模块
export default userStore;
